/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package forense.frames;

import forense.classes.ArchivoLogger;
import forense.dbo.ConexionBD;
import forense.entities.Archivos;
import forense.entities.Case;
import forense.entities.Device;
import forense.entities.Evidence;
import forense.entities.Team;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;
import javax.swing.table.TableRowSorter;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreeSelectionModel;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

/**
 *
 * @author Kate
 */
public class Inicio extends javax.swing.JFrame {

    private final static ArchivoLogger log = new ArchivoLogger(Inicio.class);
    String codigoCaso;
    String codigoDispositivo;
    String codigoEvidencia;
    String rutaArchivo;
    String rutaIcing;
    String rutaLocal;
    String rutaArchivoXml;
    String rutaDmapp;

    /**
     * Creates new form Inicio
     */
    public Inicio() {
        initComponents();

        this.setLocationRelativeTo(null);
        //crear arbol
        DefaultMutableTreeNode raiz = new DefaultMutableTreeNode("Casos de estudio");
        DefaultTreeModel modelo = new DefaultTreeModel(raiz);
        jTree2.setModel(modelo);
        //seleccionar un nodo a la vez
        jTree2.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
        //llenar jtree
        ConexionBD con = new ConexionBD();
        ArrayList<Case> casos = con.getCasos();
        if (!casos.isEmpty()) {
            //activo botones
            btnDispositivos.setEnabled(true);
            //btnFiles.setEnabled(true);
            btnReporte.setEnabled(true);
            //añado al arbol
            for (Case cas1 : casos) {
                DefaultMutableTreeNode paso1 = new DefaultMutableTreeNode();
                paso1.setUserObject(cas1);
                raiz.add(paso1);
                codigoCaso = cas1.getCaso();
                ArrayList<Evidence> arch = con.getEvidence(codigoCaso);
                if (!arch.isEmpty()) {
                    DefaultMutableTreeNode carpeta3 = new DefaultMutableTreeNode("Evidencia");
                    modelo.insertNodeInto(carpeta3, paso1, 0);
                    for (Evidence evidence : arch) {
                        DefaultMutableTreeNode sub1 = new DefaultMutableTreeNode();
                        sub1.setUserObject(evidence);
                        carpeta3.add(sub1);
//                        DefaultMutableTreeNode subcarpeta1 = new DefaultMutableTreeNode("Dispositivos");
//                        modelo.insertNodeInto(subcarpeta1, sub1, 0);
                        ArrayList<Device> devices = con.getDevices(codigoCaso);
                        if (!devices.isEmpty()) {
                            for (Device device : devices) {
                                DefaultMutableTreeNode sub2 = new DefaultMutableTreeNode();
                                sub2.setUserObject("DISPOSITIVO: " + device);
                                sub1.add(sub2);
                                //archivos del dispositivo
                                DefaultMutableTreeNode subcarpeta2 = new DefaultMutableTreeNode("Archivos");
                                modelo.insertNodeInto(subcarpeta2, sub2, 0);

                                //presentar archivos x dispositivo
                                codigoEvidencia = evidence.getCodEvidencia();
                                codigoDispositivo = device.getCodEtiqueta();
                                ArrayList<Archivos> files = con.getArchivos(codigoDispositivo);
                                if (!files.isEmpty()) {
                                    for (Archivos archivos : files) {
                                        DefaultMutableTreeNode sub3 = new DefaultMutableTreeNode();
                                        sub3.setUserObject(archivos);
                                        subcarpeta2.add(sub3);
                                    }
                                }
                                DefaultMutableTreeNode subcarpeta3 = new DefaultMutableTreeNode("Resultados");
                                modelo.insertNodeInto(subcarpeta3, sub2, 1);
                                DefaultMutableTreeNode subcarpeta4 = new DefaultMutableTreeNode("Aplicaciones/Paquetes eliminados");
                                modelo.insertNodeInto(subcarpeta4, subcarpeta3, 0);
                                DefaultMutableTreeNode subcarpeta5 = new DefaultMutableTreeNode("Aplicaciones no satisfactorias");
                                modelo.insertNodeInto(subcarpeta5, subcarpeta3, 1);
                                //obtengo rutas
                                ArrayList<Archivos> file = con.getArchivos(codigoDispositivo);
                                if (!file.isEmpty()) {
                                    for (Archivos archivo : file) {
                                        String ruta = archivo.getRutaArchivos();
                                        String convert = ruta.replace("/", "\\");
                                        String nombreBase = archivo.getNombreArchivo();
                                        if (nombreBase.equals("localappstate.db")) {
                                            rutaLocal = convert;
                                        }
                                        if (nombreBase.equals("icingcorpora.db")) {
                                            rutaIcing = convert;
                                        }
                                        if (nombreBase.equals("packages.xml")) {
                                            rutaArchivoXml = convert;
                                        }
                                        if (nombreBase.equals("dmappmgr.db")) {
                                            rutaDmapp = convert;
                                        }

                                    }
                                }

                            }

                        }

                    }

                }

            }
        }

    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jPanelMenuJtree = new javax.swing.JPanel();
        jScrollPane2 = new javax.swing.JScrollPane();
        jTree2 = new javax.swing.JTree();
        jPanel3 = new javax.swing.JPanel();
        jPanelPrincipal = new javax.swing.JPanel();
        jPanelInfo = new javax.swing.JPanel();
        txtCaso = new javax.swing.JTextField();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        jScrollPane1 = new javax.swing.JScrollPane();
        txtDes = new javax.swing.JTextArea();
        jScrollPane3 = new javax.swing.JScrollPane();
        txtObj = new javax.swing.JTextArea();
        jScrollPane4 = new javax.swing.JScrollPane();
        txtAlcance = new javax.swing.JTextArea();
        jLabel11 = new javax.swing.JLabel();
        txtFechaSolicitud = new javax.swing.JTextField();
        jLabel12 = new javax.swing.JLabel();
        txtQuienSolicita = new javax.swing.JTextField();
        jLabel13 = new javax.swing.JLabel();
        jScrollPane5 = new javax.swing.JScrollPane();
        jTablePersonal = new javax.swing.JTable();
        jPanelDatosArchivosSeleccionados = new javax.swing.JPanel();
        jScrollPane8 = new javax.swing.JScrollPane();
        jtableBase = new javax.swing.JTable();
        jLabel19 = new javax.swing.JLabel();
        jComboBoxTablas = new javax.swing.JComboBox();
        jScrollPane9 = new javax.swing.JScrollPane();
        jTableBaseInterpretada = new javax.swing.JTable();
        jLabel20 = new javax.swing.JLabel();
        jPanelResultados = new javax.swing.JPanel();
        txtEliminadas = new javax.swing.JPanel();
        jScrollPane11 = new javax.swing.JScrollPane();
        jTableEliminadas = new javax.swing.JTable();
        jScrollPane12 = new javax.swing.JScrollPane();
        jTableEliminadasSystem = new javax.swing.JTable();
        jPanelEvidencia = new javax.swing.JPanel();
        jLabel6 = new javax.swing.JLabel();
        txtEvidencia = new javax.swing.JTextField();
        jLabel1 = new javax.swing.JLabel();
        txtFechaIncautacion = new javax.swing.JTextField();
        jLabel5 = new javax.swing.JLabel();
        txtLugar = new javax.swing.JTextField();
        jLabel7 = new javax.swing.JLabel();
        jScrollPane6 = new javax.swing.JScrollPane();
        txtObservaciones = new javax.swing.JTextArea();
        jScrollPane7 = new javax.swing.JScrollPane();
        jTableDispositivo = new javax.swing.JTable();
        jLabel14 = new javax.swing.JLabel();
        jLabel15 = new javax.swing.JLabel();
        jLabel16 = new javax.swing.JLabel();
        jLabel17 = new javax.swing.JLabel();
        txtSerial = new javax.swing.JTextField();
        txtMarca = new javax.swing.JTextField();
        txtModelo = new javax.swing.JTextField();
        txtVersion = new javax.swing.JTextField();
        jLabel18 = new javax.swing.JLabel();
        txtDispositivo = new javax.swing.JTextField();
        jPanelDispositivos = new javax.swing.JPanel();
        jLabel8 = new javax.swing.JLabel();
        txtCaso2 = new javax.swing.JTextField();
        jLabel9 = new javax.swing.JLabel();
        jLabel10 = new javax.swing.JLabel();
        txtEvidencia1 = new javax.swing.JTextField();
        txtDispositivo1 = new javax.swing.JTextField();
        jPanelPackages = new javax.swing.JPanel();
        jScrollPane13 = new javax.swing.JScrollPane();
        txtPackages = new javax.swing.JTextArea();
        jPanelResultados1 = new javax.swing.JPanel();
        jPanel15 = new javax.swing.JPanel();
        jScrollPane15 = new javax.swing.JScrollPane();
        jTableNoSastifactorias = new javax.swing.JTable();
        jToolBar1 = new javax.swing.JToolBar();
        btnNewCase = new javax.swing.JButton();
        btnDispositivos = new javax.swing.JButton();
        btnFiles = new javax.swing.JButton();
        btnReporte = new javax.swing.JButton();
        jMenuBar1 = new javax.swing.JMenuBar();
        jMenu1 = new javax.swing.JMenu();
        jMenu2 = new javax.swing.JMenu();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Gestión información Casos de estudio análisis forense moviles");

        jPanelMenuJtree.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        jPanelMenuJtree.setLayout(new java.awt.BorderLayout());

        jTree2.setDebugGraphicsOptions(javax.swing.DebugGraphics.NONE_OPTION);
        jTree2.setShowsRootHandles(true);
        jTree2.setToggleClickCount(1);
        jTree2.addTreeExpansionListener(new javax.swing.event.TreeExpansionListener() {
            public void treeCollapsed(javax.swing.event.TreeExpansionEvent evt) {
                jTree2TreeCollapsed(evt);
            }
            public void treeExpanded(javax.swing.event.TreeExpansionEvent evt) {
                jTree2TreeExpanded(evt);
            }
        });
        jTree2.addTreeSelectionListener(new javax.swing.event.TreeSelectionListener() {
            public void valueChanged(javax.swing.event.TreeSelectionEvent evt) {
                jTree2ValueChanged(evt);
            }
        });
        jScrollPane2.setViewportView(jTree2);

        jPanelMenuJtree.add(jScrollPane2, java.awt.BorderLayout.CENTER);

        jPanel3.setBackground(new java.awt.Color(204, 255, 204));
        jPanel3.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        jPanel3.setLayout(new java.awt.CardLayout());

        jPanelPrincipal.setBackground(new java.awt.Color(255, 255, 204));

        javax.swing.GroupLayout jPanelPrincipalLayout = new javax.swing.GroupLayout(jPanelPrincipal);
        jPanelPrincipal.setLayout(jPanelPrincipalLayout);
        jPanelPrincipalLayout.setHorizontalGroup(
            jPanelPrincipalLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 678, Short.MAX_VALUE)
        );
        jPanelPrincipalLayout.setVerticalGroup(
            jPanelPrincipalLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 507, Short.MAX_VALUE)
        );

        jPanel3.add(jPanelPrincipal, "card2");

        txtCaso.setEditable(false);

        jLabel2.setText("Caso");

        jLabel3.setText("Objetivos");

        jLabel4.setText("Alcance:");

        txtDes.setBackground(new java.awt.Color(240, 240, 240));
        txtDes.setColumns(20);
        txtDes.setRows(5);
        jScrollPane1.setViewportView(txtDes);

        txtObj.setBackground(new java.awt.Color(240, 240, 240));
        txtObj.setColumns(20);
        txtObj.setRows(5);
        jScrollPane3.setViewportView(txtObj);

        txtAlcance.setBackground(new java.awt.Color(240, 240, 240));
        txtAlcance.setColumns(20);
        txtAlcance.setRows(5);
        jScrollPane4.setViewportView(txtAlcance);

        jLabel11.setText("Fecha de solicitud:");

        txtFechaSolicitud.setEditable(false);

        jLabel12.setText("A petición de:");

        txtQuienSolicita.setEditable(false);

        jLabel13.setText("Equipo de investigación:");

        jTablePersonal.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {

            }
        ));
        jScrollPane5.setViewportView(jTablePersonal);

        javax.swing.GroupLayout jPanelInfoLayout = new javax.swing.GroupLayout(jPanelInfo);
        jPanelInfo.setLayout(jPanelInfoLayout);
        jPanelInfoLayout.setHorizontalGroup(
            jPanelInfoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
            .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanelInfoLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanelInfoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane1)
                    .addGroup(jPanelInfoLayout.createSequentialGroup()
                        .addGroup(jPanelInfoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanelInfoLayout.createSequentialGroup()
                                .addGroup(jPanelInfoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(jLabel11)
                                    .addComponent(jLabel12))
                                .addGap(18, 18, 18)
                                .addGroup(jPanelInfoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(txtFechaSolicitud, javax.swing.GroupLayout.PREFERRED_SIZE, 125, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(txtQuienSolicita, javax.swing.GroupLayout.PREFERRED_SIZE, 360, javax.swing.GroupLayout.PREFERRED_SIZE)))
                            .addGroup(jPanelInfoLayout.createSequentialGroup()
                                .addComponent(jLabel2)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(txtCaso, javax.swing.GroupLayout.PREFERRED_SIZE, 125, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addComponent(jLabel3)
                            .addComponent(jLabel4)
                            .addComponent(jLabel13))
                        .addGap(0, 191, Short.MAX_VALUE))
                    .addComponent(jScrollPane3)
                    .addComponent(jScrollPane4)
                    .addComponent(jScrollPane5))
                .addContainerGap())
        );
        jPanelInfoLayout.setVerticalGroup(
            jPanelInfoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelInfoLayout.createSequentialGroup()
                .addGap(11, 11, 11)
                .addGroup(jPanelInfoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel11)
                    .addComponent(txtFechaSolicitud, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanelInfoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel12)
                    .addComponent(txtQuienSolicita, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanelInfoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel2)
                    .addComponent(txtCaso, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 78, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jLabel3)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 78, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jLabel4)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jScrollPane4, javax.swing.GroupLayout.PREFERRED_SIZE, 78, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(4, 4, 4)
                .addComponent(jLabel13)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane5, javax.swing.GroupLayout.DEFAULT_SIZE, 100, Short.MAX_VALUE)
                .addContainerGap())
        );

        jPanel3.add(jPanelInfo, "card2");

        jtableBase.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "", "", "", "", "", "", "", ""
            }
        ));
        jtableBase.setAutoscrolls(false);
        jScrollPane8.setViewportView(jtableBase);

        jLabel19.setText("Seleccione tabla:");

        jComboBoxTablas.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jComboBoxTablasActionPerformed(evt);
            }
        });

        jTableBaseInterpretada.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "", "", ""
            }
        ));
        jScrollPane9.setViewportView(jTableBaseInterpretada);

        jLabel20.setText("jLabel20");

        javax.swing.GroupLayout jPanelDatosArchivosSeleccionadosLayout = new javax.swing.GroupLayout(jPanelDatosArchivosSeleccionados);
        jPanelDatosArchivosSeleccionados.setLayout(jPanelDatosArchivosSeleccionadosLayout);
        jPanelDatosArchivosSeleccionadosLayout.setHorizontalGroup(
            jPanelDatosArchivosSeleccionadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelDatosArchivosSeleccionadosLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanelDatosArchivosSeleccionadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane9)
                    .addComponent(jScrollPane8, javax.swing.GroupLayout.DEFAULT_SIZE, 658, Short.MAX_VALUE)
                    .addGroup(jPanelDatosArchivosSeleccionadosLayout.createSequentialGroup()
                        .addGroup(jPanelDatosArchivosSeleccionadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanelDatosArchivosSeleccionadosLayout.createSequentialGroup()
                                .addComponent(jLabel19)
                                .addGap(18, 18, 18)
                                .addComponent(jComboBoxTablas, javax.swing.GroupLayout.PREFERRED_SIZE, 172, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addComponent(jLabel20))
                        .addGap(0, 0, Short.MAX_VALUE)))
                .addContainerGap())
        );
        jPanelDatosArchivosSeleccionadosLayout.setVerticalGroup(
            jPanelDatosArchivosSeleccionadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelDatosArchivosSeleccionadosLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanelDatosArchivosSeleccionadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jComboBoxTablas, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel19))
                .addGap(18, 18, 18)
                .addComponent(jScrollPane8, javax.swing.GroupLayout.PREFERRED_SIZE, 122, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(13, 13, 13)
                .addComponent(jLabel20)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jScrollPane9, javax.swing.GroupLayout.PREFERRED_SIZE, 148, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(150, Short.MAX_VALUE))
        );

        jPanel3.add(jPanelDatosArchivosSeleccionados, "card2");

        jPanelResultados.setPreferredSize(new java.awt.Dimension(678, 507));

        txtEliminadas.setBorder(javax.swing.BorderFactory.createTitledBorder("Apps desinstaladas/eliminadas"));

        jTableEliminadas.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "", "", "", ""
            }
        ));
        jScrollPane11.setViewportView(jTableEliminadas);

        jTableEliminadasSystem.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "", "", "", ""
            }
        ));
        jScrollPane12.setViewportView(jTableEliminadasSystem);

        javax.swing.GroupLayout txtEliminadasLayout = new javax.swing.GroupLayout(txtEliminadas);
        txtEliminadas.setLayout(txtEliminadasLayout);
        txtEliminadasLayout.setHorizontalGroup(
            txtEliminadasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(txtEliminadasLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(txtEliminadasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane11, javax.swing.GroupLayout.DEFAULT_SIZE, 626, Short.MAX_VALUE)
                    .addComponent(jScrollPane12))
                .addContainerGap())
        );
        txtEliminadasLayout.setVerticalGroup(
            txtEliminadasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(txtEliminadasLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane11, javax.swing.GroupLayout.PREFERRED_SIZE, 200, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jScrollPane12, javax.swing.GroupLayout.PREFERRED_SIZE, 200, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(33, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout jPanelResultadosLayout = new javax.swing.GroupLayout(jPanelResultados);
        jPanelResultados.setLayout(jPanelResultadosLayout);
        jPanelResultadosLayout.setHorizontalGroup(
            jPanelResultadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelResultadosLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(txtEliminadas, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
        );
        jPanelResultadosLayout.setVerticalGroup(
            jPanelResultadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelResultadosLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(txtEliminadas, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
        );

        jPanel3.add(jPanelResultados, "card2");

        jLabel6.setText("Evidencia:");

        txtEvidencia.setEditable(false);

        jLabel1.setText("Fecha y Hora de incautación:");

        txtFechaIncautacion.setEditable(false);

        jLabel5.setText("Lugar de incautación:");

        txtLugar.setEditable(false);

        jLabel7.setText("Observaciones:");

        txtObservaciones.setEditable(false);
        txtObservaciones.setBackground(new java.awt.Color(240, 240, 240));
        txtObservaciones.setColumns(20);
        txtObservaciones.setRows(5);
        jScrollPane6.setViewportView(txtObservaciones);

        jTableDispositivo.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {

            }
        ));
        jTableDispositivo.setColumnSelectionAllowed(true);
        jTableDispositivo.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTableDispositivoMouseClicked(evt);
            }
        });
        jScrollPane7.setViewportView(jTableDispositivo);
        jTableDispositivo.getColumnModel().getSelectionModel().setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);

        jLabel14.setText("Número serial:");

        jLabel15.setText("Marca:");

        jLabel16.setText("Modelo:");

        jLabel17.setText("Versión OS:");

        txtSerial.setEditable(false);

        txtMarca.setEditable(false);

        txtModelo.setEditable(false);

        txtVersion.setEditable(false);

        jLabel18.setText("Dispositivo:");

        txtDispositivo.setEditable(false);

        javax.swing.GroupLayout jPanelEvidenciaLayout = new javax.swing.GroupLayout(jPanelEvidencia);
        jPanelEvidencia.setLayout(jPanelEvidenciaLayout);
        jPanelEvidenciaLayout.setHorizontalGroup(
            jPanelEvidenciaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelEvidenciaLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanelEvidenciaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane6)
                    .addComponent(jScrollPane7)
                    .addGroup(jPanelEvidenciaLayout.createSequentialGroup()
                        .addGroup(jPanelEvidenciaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanelEvidenciaLayout.createSequentialGroup()
                                .addGroup(jPanelEvidenciaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                    .addComponent(jLabel5)
                                    .addComponent(jLabel6))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addGroup(jPanelEvidenciaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                    .addGroup(jPanelEvidenciaLayout.createSequentialGroup()
                                        .addComponent(txtEvidencia, javax.swing.GroupLayout.PREFERRED_SIZE, 125, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addGap(18, 18, 18)
                                        .addComponent(jLabel1)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                        .addComponent(txtFechaIncautacion, javax.swing.GroupLayout.PREFERRED_SIZE, 125, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addComponent(txtLugar)))
                            .addComponent(jLabel7)
                            .addGroup(jPanelEvidenciaLayout.createSequentialGroup()
                                .addGroup(jPanelEvidenciaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                    .addComponent(jLabel14)
                                    .addComponent(jLabel15)
                                    .addComponent(jLabel16)
                                    .addComponent(jLabel17)
                                    .addComponent(jLabel18))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addGroup(jPanelEvidenciaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(txtMarca, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(txtModelo, javax.swing.GroupLayout.PREFERRED_SIZE, 131, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(txtVersion, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addGroup(jPanelEvidenciaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                                        .addComponent(txtDispositivo, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 130, Short.MAX_VALUE)
                                        .addComponent(txtSerial, javax.swing.GroupLayout.Alignment.LEADING)))))
                        .addGap(0, 133, Short.MAX_VALUE)))
                .addContainerGap())
        );
        jPanelEvidenciaLayout.setVerticalGroup(
            jPanelEvidenciaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelEvidenciaLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanelEvidenciaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel6)
                    .addComponent(txtEvidencia, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel1)
                    .addComponent(txtFechaIncautacion, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanelEvidenciaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel5)
                    .addComponent(txtLugar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jLabel7)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jScrollPane7, javax.swing.GroupLayout.DEFAULT_SIZE, 88, Short.MAX_VALUE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanelEvidenciaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel18)
                    .addComponent(txtDispositivo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanelEvidenciaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(txtSerial, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel14))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanelEvidenciaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(txtMarca, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel15))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanelEvidenciaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(txtModelo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel16))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanelEvidenciaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(txtVersion, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel17))
                .addContainerGap())
        );

        jPanel3.add(jPanelEvidencia, "card2");

        jLabel8.setText("Caso:");

        jLabel9.setText("Evidencia:");

        jLabel10.setText("Dispositivo");

        javax.swing.GroupLayout jPanelDispositivosLayout = new javax.swing.GroupLayout(jPanelDispositivos);
        jPanelDispositivos.setLayout(jPanelDispositivosLayout);
        jPanelDispositivosLayout.setHorizontalGroup(
            jPanelDispositivosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelDispositivosLayout.createSequentialGroup()
                .addGap(18, 18, 18)
                .addGroup(jPanelDispositivosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jLabel10)
                    .addComponent(jLabel9)
                    .addComponent(jLabel8))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanelDispositivosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(txtCaso2, javax.swing.GroupLayout.DEFAULT_SIZE, 125, Short.MAX_VALUE)
                    .addComponent(txtEvidencia1)
                    .addComponent(txtDispositivo1))
                .addContainerGap(474, Short.MAX_VALUE))
        );
        jPanelDispositivosLayout.setVerticalGroup(
            jPanelDispositivosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelDispositivosLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanelDispositivosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel8)
                    .addComponent(txtCaso2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanelDispositivosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel9)
                    .addComponent(txtEvidencia1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanelDispositivosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel10)
                    .addComponent(txtDispositivo1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(424, Short.MAX_VALUE))
        );

        jPanel3.add(jPanelDispositivos, "card2");

        txtPackages.setEditable(false);
        txtPackages.setColumns(20);
        txtPackages.setRows(5);
        jScrollPane13.setViewportView(txtPackages);

        javax.swing.GroupLayout jPanelPackagesLayout = new javax.swing.GroupLayout(jPanelPackages);
        jPanelPackages.setLayout(jPanelPackagesLayout);
        jPanelPackagesLayout.setHorizontalGroup(
            jPanelPackagesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelPackagesLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane13, javax.swing.GroupLayout.DEFAULT_SIZE, 658, Short.MAX_VALUE)
                .addContainerGap())
        );
        jPanelPackagesLayout.setVerticalGroup(
            jPanelPackagesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelPackagesLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane13, javax.swing.GroupLayout.DEFAULT_SIZE, 485, Short.MAX_VALUE)
                .addContainerGap())
        );

        jPanel3.add(jPanelPackages, "card2");

        jPanelResultados1.setPreferredSize(new java.awt.Dimension(678, 507));

        jPanel15.setBorder(javax.swing.BorderFactory.createTitledBorder("Apps no satisfactorias"));

        jTableNoSastifactorias.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                ""
            }
        ));
        jScrollPane15.setViewportView(jTableNoSastifactorias);

        javax.swing.GroupLayout jPanel15Layout = new javax.swing.GroupLayout(jPanel15);
        jPanel15.setLayout(jPanel15Layout);
        jPanel15Layout.setHorizontalGroup(
            jPanel15Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel15Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane15, javax.swing.GroupLayout.DEFAULT_SIZE, 626, Short.MAX_VALUE)
                .addContainerGap())
        );
        jPanel15Layout.setVerticalGroup(
            jPanel15Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel15Layout.createSequentialGroup()
                .addComponent(jScrollPane15, javax.swing.GroupLayout.DEFAULT_SIZE, 451, Short.MAX_VALUE)
                .addContainerGap())
        );

        javax.swing.GroupLayout jPanelResultados1Layout = new javax.swing.GroupLayout(jPanelResultados1);
        jPanelResultados1.setLayout(jPanelResultados1Layout);
        jPanelResultados1Layout.setHorizontalGroup(
            jPanelResultados1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelResultados1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel15, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
        );
        jPanelResultados1Layout.setVerticalGroup(
            jPanelResultados1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelResultados1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel15, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
        );

        jPanel3.add(jPanelResultados1, "card2");

        jToolBar1.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        jToolBar1.setFloatable(false);
        jToolBar1.setRollover(true);

        btnNewCase.setIcon(new javax.swing.ImageIcon(getClass().getResource("/forense/images/add_sheet.png"))); // NOI18N
        btnNewCase.setText("Nuevo Caso");
        btnNewCase.setFocusable(false);
        btnNewCase.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btnNewCase.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        btnNewCase.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnNewCaseActionPerformed(evt);
            }
        });
        jToolBar1.add(btnNewCase);

        btnDispositivos.setIcon(new javax.swing.ImageIcon(getClass().getResource("/forense/images/iconApp.png"))); // NOI18N
        btnDispositivos.setText("Ingresar dispositivos");
        btnDispositivos.setEnabled(false);
        btnDispositivos.setFocusable(false);
        btnDispositivos.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btnDispositivos.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        btnDispositivos.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnDispositivosActionPerformed(evt);
            }
        });
        jToolBar1.add(btnDispositivos);

        btnFiles.setIcon(new javax.swing.ImageIcon(getClass().getResource("/forense/images/icon_add.png"))); // NOI18N
        btnFiles.setText("Subir archivos");
        btnFiles.setEnabled(false);
        btnFiles.setFocusable(false);
        btnFiles.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btnFiles.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        btnFiles.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnFilesActionPerformed(evt);
            }
        });
        jToolBar1.add(btnFiles);

        btnReporte.setIcon(new javax.swing.ImageIcon(getClass().getResource("/forense/images/report.png"))); // NOI18N
        btnReporte.setText("Generar Reporte");
        btnReporte.setEnabled(false);
        btnReporte.setFocusable(false);
        btnReporte.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btnReporte.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        btnReporte.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnReporteActionPerformed(evt);
            }
        });
        jToolBar1.add(btnReporte);

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanelMenuJtree, javax.swing.GroupLayout.PREFERRED_SIZE, 255, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
            .addComponent(jToolBar1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                .addComponent(jToolBar1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jPanelMenuJtree, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap())
        );

        jMenu1.setText("File");
        jMenuBar1.add(jMenu1);

        jMenu2.setText("Edit");
        jMenuBar1.add(jMenu2);

        setJMenuBar(jMenuBar1);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void jTree2ValueChanged(javax.swing.event.TreeSelectionEvent evt) {//GEN-FIRST:event_jTree2ValueChanged
        //presentar datos de acuerdo a lo que el usuario seleccione
        ConexionBD con = new ConexionBD();
        DefaultMutableTreeNode nodo = (DefaultMutableTreeNode) jTree2.getLastSelectedPathComponent();

        if (nodo == null) {
            return;
        }
        if (nodo.getLevel() == 0) {
            System.out.println("Nodo raiz");
        } else {
            Object nodeInfo = nodo.getUserObject();
            System.out.println(nodo.getLevel());

            if (nodo.getLevel() == 1) {
                limpiarTabla(jTablePersonal);
                Case casoId = (Case) nodeInfo;
                //remover panel
                jPanel3.removeAll();
                jPanel3.repaint();
                jPanel3.revalidate();
                //añadir panel
                jPanel3.add(jPanelInfo);
                jPanel3.repaint();
                jPanel3.revalidate();

                txtCaso.setText(casoId.getCaso());
                codigoCaso = casoId.getCaso();
                txtDes.setText(casoId.getDescripcion());
                txtObj.setText(casoId.getObjetivos());
                txtAlcance.setText(casoId.getAlcance());
                txtQuienSolicita.setText(casoId.getSolicitante());
                long fecha = casoId.getFechaSolicitud();
                SimpleDateFormat sdf = new java.text.SimpleDateFormat("dd/MM/yyyy");
                Date sol = new Date(fecha);
                txtFechaSolicitud.setText(sdf.format(sol));

                ArrayList<Team> equipo = con.getEquipo(codigoCaso);
                if (!equipo.isEmpty()) {
                    obtPersonal(codigoCaso);
                }
            }
            if (nodo.getLevel() == 3) {
                //remover panel
                jPanel3.removeAll();
                jPanel3.repaint();
                jPanel3.revalidate();
                //añadir panel
                jPanel3.add(jPanelEvidencia);
                jPanel3.repaint();
                jPanel3.revalidate();
                //reinicio jtable
                limpiarTabla(jTableDispositivo);
                //
                Evidence eviId = (Evidence) nodo.getUserObject();
                txtEvidencia.setText(eviId.getCodEvidencia());

                long fecha = eviId.getFechaIncautacion();
                SimpleDateFormat sdf = new java.text.SimpleDateFormat("dd/MM/yyyy HH:mm");
                Date sol = new Date(fecha);

                txtFechaIncautacion.setText(sdf.format(sol));
                txtLugar.setText(eviId.getLugarIncautacion());
                txtObservaciones.setText(eviId.getObservaciones());

                ArrayList<Device> dispositivo = con.getDevices(codigoCaso);
                if (!dispositivo.isEmpty()) {
                    for (Device devices : dispositivo) {
//                        long fecha1 = devices.getFechaRecepcion();
//                        SimpleDateFormat sdf1 = new java.text.SimpleDateFormat("dd/MM/yyyy HH:mm");
//                        Date sol1 = new Date(fecha1);
//                        Object datos[] = new Object[8];
//                        datos[0] = devices.getCodEtiqueta();
//                        datos[1] = devices.getCodEvi();
//                        datos[2] = sdf1.format(sol1);
//                        datos[3] = devices.getTipo();
//                        datos[4] = devices.getEstado();
//                        datos[5] = devices.getBloqueado();
//                        datos[6] = devices.getEspacio();
//                        datos[7] = devices.getModoVuelo();
//
//                        DefaultTableModel modelo2 = (DefaultTableModel) jTableDispositivo.getModel();
//                        jTableDispositivo.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
//                        jTableDispositivo.doLayout();
//                        TableRowSorter sorter = new TableRowSorter(modelo2);
//                        jTableDispositivo.setRowSorter(sorter);
//                        modelo2.addRow(datos);
//                        jTableDispositivo.setModel(modelo2);
//                        datos = null;
                        obtDevices(codigoCaso);
                    }
                }
            }
            //selecciona los archivos a visualizar la info
            String texto = nodo.getUserObject().toString();
            if (texto.equals("localappstate.db")) {
                jLabel20.setText("Aplicaciones descargadas de Google Play");
                System.out.println("selecciono localappstate");
                //reinicio jtable
                limpiarTabla(jtableBase);
                limpiarTabla(jTableBaseInterpretada);
                //remover panel
                jPanel3.removeAll();
                jPanel3.repaint();
                jPanel3.revalidate();
                //añadir panel
                jPanel3.add(jPanelDatosArchivosSeleccionados);
                jPanel3.repaint();
                jPanel3.revalidate();

                ArrayList<Archivos> arch = con.getArchivos(codigoDispositivo);
                if (!arch.isEmpty()) {
                    for (Archivos archivos : arch) {
                        String ruta = archivos.getRutaArchivos();
                        String convert = ruta.replace("/", "\\");
                        String nombreBase = archivos.getNombreArchivo();
                        if (nombreBase.equals("localappstate.db")) {
                            rutaArchivo = convert;
                            rutaLocal = convert;
                            llenarCombo(convert);
                        }
                    }
                }//fin if datos vacios
            }
            if (texto.equals("icingcorpora.db")) {
                jLabel20.setText("Aplicaciones activas");
                System.out.println("selecciono icing");
                //reinicio jtable
                limpiarTabla(jtableBase);
                limpiarTabla(jTableBaseInterpretada);
                //remover panel
                jPanel3.removeAll();
                jPanel3.repaint();
                jPanel3.revalidate();
                //añadir panel
                jPanel3.add(jPanelDatosArchivosSeleccionados);
                jPanel3.repaint();
                jPanel3.revalidate();
                ArrayList<Archivos> arch = con.getArchivos(codigoDispositivo);
                if (!arch.isEmpty()) {
                    for (Archivos archivos : arch) {
                        String ruta = archivos.getRutaArchivos();
                        String convert = ruta.replace("/", "\\");
                        String nombreBase = archivos.getNombreArchivo();
                        if (nombreBase.equals("icingcorpora.db")) {
                            rutaArchivo = convert;
                            rutaIcing = convert;
                            llenarCombo(convert);
                        }
                    }
                }//fin if datos vacios
            }
            if (texto.equals("dmappmgr.db")) {
                jLabel20.setText("Historial de uso aplicaciones");
                System.out.println("selecciono dmapp");
                //reinicio jtable
                limpiarTabla(jtableBase);
                limpiarTabla(jTableBaseInterpretada);
                //remover panel
                jPanel3.removeAll();
                jPanel3.repaint();
                jPanel3.revalidate();
                //añadir panel
                jPanel3.add(jPanelDatosArchivosSeleccionados);
                jPanel3.repaint();
                jPanel3.revalidate();
                ArrayList<Archivos> arch = con.getArchivos(codigoDispositivo);
                if (!arch.isEmpty()) {
                    for (Archivos archivos : arch) {
                        String ruta = archivos.getRutaArchivos();
                        String convert = ruta.replace("/", "\\");
                        String nombreBase = archivos.getNombreArchivo();
                        if (nombreBase.equals("dmappmgr.db")) {
                            rutaArchivo = convert;
                            rutaDmapp = convert;
                            llenarCombo(convert);
                        }
                    }
                }//fin if datos vacios
            }
            if (texto.equals("browser2.db")) {
                System.out.println("selecciono brow");
                jLabel20.setText("Historial de navegación");
                //reinicio jtable
                limpiarTabla(jtableBase);
                limpiarTabla(jTableBaseInterpretada);
                //remover panel
                jPanel3.removeAll();
                jPanel3.repaint();
                jPanel3.revalidate();
                //añadir panel
                jPanel3.add(jPanelDatosArchivosSeleccionados);
                jPanel3.repaint();
                jPanel3.revalidate();
                ArrayList<Archivos> arch = con.getArchivos(codigoDispositivo);
                if (!arch.isEmpty()) {
                    for (Archivos archivos : arch) {
                        String ruta = archivos.getRutaArchivos();
                        String convert = ruta.replace("/", "\\");
                        String nombreBase = archivos.getNombreArchivo();
                        if (nombreBase.equals("browser2.db")) {
                            rutaArchivo = convert;

                            llenarCombo(convert);
                        }
                    }
                }//fin if datos vacios
            }

            if (texto.equals("sisodownloads.db")) {
                jLabel20.setText("Descargas realizadas");
                System.out.println("selecciono siso");
                //reinicio jtable
                limpiarTabla(jtableBase);
                limpiarTabla(jTableBaseInterpretada);
                //remover panel
                jPanel3.removeAll();
                jPanel3.repaint();
                jPanel3.revalidate();
                //añadir panel
                jPanel3.add(jPanelDatosArchivosSeleccionados);
                jPanel3.repaint();
                jPanel3.revalidate();

                ArrayList<Archivos> arch = con.getArchivos(codigoDispositivo);
                if (!arch.isEmpty()) {
                    for (Archivos archivos : arch) {
                        String ruta = archivos.getRutaArchivos();
                        String convert = ruta.replace("/", "\\");
                        String nombreBase = archivos.getNombreArchivo();
                        if (nombreBase.equals("sisodownloads.db")) {
                            rutaArchivo = convert;
                            llenarCombo(convert);
                        }
                    }
                }//fin if datos vacios
            }
            if (texto.equals("packages.xml")) {
                System.out.println("selecciono xml");
                //remover panel
                jPanel3.removeAll();
                jPanel3.repaint();
                jPanel3.revalidate();
                //añadir panel
                jPanel3.add(jPanelPackages);
                jPanel3.repaint();
                jPanel3.revalidate();
                ArrayList<Archivos> arch = con.getArchivos(codigoDispositivo);
                if (!arch.isEmpty()) {
                    for (Archivos archivos : arch) {
                        String ruta = archivos.getRutaArchivos();
                        String convert = ruta.replace("/", "\\");
                        String nombreBase = archivos.getNombreArchivo();
                        if (nombreBase.equals("packages.xml")) {
                            rutaArchivo = convert;
                            rutaArchivoXml = convert;
                            try {
                                mostratXml(rutaArchivoXml);
                            } catch (IOException ex) {
                                Logger.getLogger(Inicio.class.getName()).log(Level.SEVERE, null, ex);
                            }

                        }
                    }
                }//fin if datos vacios
            }
            if (texto.equals("Aplicaciones/Paquetes eliminados")) {
                //remover panel
                jPanel3.removeAll();
                jPanel3.repaint();
                jPanel3.revalidate();
                //añadir panel
                jPanel3.add(jPanelResultados);
                jPanel3.repaint();
                jPanel3.revalidate();
                //reinicio jtable
                //presentar eliminadas
                paquetesEliminadosLocalXml1(rutaLocal, rutaArchivoXml);
                //appsCanceladas(rutaLocal);
                paquetesEliminadosDmappXml(rutaDmapp, rutaArchivoXml);
            }
            //Aplicaciones no satisfactorias
            if (texto.equals("Aplicaciones no satisfactorias")) {
                //remover panel
                jPanel3.removeAll();
                jPanel3.repaint();
                jPanel3.revalidate();
                //añadir panel
                jPanel3.add(jPanelResultados1);
                jPanel3.repaint();
                jPanel3.revalidate();
                //reinicio jtable
                //presentar eliminadas
                appsCanceladas(rutaLocal);
            }
        }
    }//GEN-LAST:event_jTree2ValueChanged

    private void btnNewCaseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnNewCaseActionPerformed
        CrearCaso crear = new CrearCaso();
        crear.setVisible(true);
    }//GEN-LAST:event_btnNewCaseActionPerformed

    private void btnDispositivosActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnDispositivosActionPerformed
        IngresarDispositivo dis = new IngresarDispositivo();
        dis.setVisible(true);
    }//GEN-LAST:event_btnDispositivosActionPerformed

    private void btnFilesActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnFilesActionPerformed
        Files arch = new Files();
        arch.setVisible(true);
    }//GEN-LAST:event_btnFilesActionPerformed

    private void jTree2TreeCollapsed(javax.swing.event.TreeExpansionEvent evt) {//GEN-FIRST:event_jTree2TreeCollapsed
        //expandir();
    }//GEN-LAST:event_jTree2TreeCollapsed

    private void jTree2TreeExpanded(javax.swing.event.TreeExpansionEvent evt) {//GEN-FIRST:event_jTree2TreeExpanded
        //expandir();
    }//GEN-LAST:event_jTree2TreeExpanded

    private void btnReporteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnReporteActionPerformed
        Files f = new Files();
        f.setVisible(true);
    }//GEN-LAST:event_btnReporteActionPerformed

    private void jTableDispositivoMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTableDispositivoMouseClicked
        //cargar datos tabla a formulario
        if (jTableDispositivo.getRowCount() != 0) {
            btnFiles.setEnabled(true);
            codigoDispositivo = jTableDispositivo.getValueAt(jTableDispositivo.getSelectedRow(), 0).toString();
            txtDispositivo.setText(codigoDispositivo);
            //BUSCAR MARCA, MODELO, SERIAL, VERSION OS
            ConexionBD con = new ConexionBD();
            try {
                ResultSet rs = null;
                Statement st = con.getConection().createStatement();
                rs = st.executeQuery("Select SERIAL, MARCA, MODELO, VERSIONOS FROM propiedades WHERE CODIGOETIQUETADISPOSITIVO='" + codigoDispositivo + "'");
                while (rs.next()) {
                    Object datos[] = new Object[4];
                    datos[0] = rs.getString(1);
                    datos[1] = rs.getString(2);
                    datos[2] = rs.getString(3);
                    datos[3] = rs.getString(4);
                    txtSerial.setText(datos[0].toString());
                    txtMarca.setText(datos[1].toString());
                    txtModelo.setText(datos[2].toString());
                    txtVersion.setText(datos[3].toString());
                }
                rs.close();
            } catch (Exception e) {
            }
        } else {
            JOptionPane.showMessageDialog(null, "No se ha ingresado datos");
        }
    }//GEN-LAST:event_jTableDispositivoMouseClicked

    private void jComboBoxTablasActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jComboBoxTablasActionPerformed
        // TODO add your handling code here:
        String tabla = jComboBoxTablas.getSelectedItem().toString();
        if (!tabla.equals("Seleccione")) {
            if (tabla.equals("appstate")) {
                consultarTablas(rutaArchivo, tabla);
                consultarLocal(rutaArchivo);
            } else {
                consultarTablas(rutaArchivo, tabla);
            }
            if (tabla.equals("applications")) {
                consultarTablas(rutaArchivo, tabla);
                consultarIcing(rutaArchivo);
            } else {
                consultarTablas(rutaArchivo, tabla);
            }
            if (tabla.equals("ApplicationControl")) {
                consultarTablas(rutaArchivo, tabla);
                consultarDmapp(rutaArchivo);
            } else {
                consultarTablas(rutaArchivo, tabla);
            }
            if (tabla.equals("history")) {
                consultarTablas(rutaArchivo, tabla);
                consultarHistorial(rutaArchivo);
            } else {
                consultarTablas(rutaArchivo, tabla);
            }
            if (tabla.equals("sisodownloads")) {
                consultarTablas(rutaArchivo, tabla);
                consultarDescargas(rutaArchivo);
            } else {
                consultarTablas(rutaArchivo, tabla);
            }

        }
    }//GEN-LAST:event_jComboBoxTablasActionPerformed
    public void expandir() {
        for (int x = 0; x < jTree2.getRowCount(); x++) {
            jTree2.expandRow(x);
        }
    }

    public void limpiarTabla(JTable tabla) {
        try {
            DefaultTableModel modelo = (DefaultTableModel) tabla.getModel();
            int filas = tabla.getRowCount();
            for (int i = 0; filas > i; i++) {
                modelo.removeRow(0);
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Error al limpiar la tabla.");
        }
    }

    public void llenarCombo(String ruta) {

        //DefaultComboBoxModel model = (DefaultComboBoxModel) jComboBoxTablas.getModel();
        DefaultComboBoxModel model = new DefaultComboBoxModel();
        jComboBoxTablas.setModel(model);
        model.addElement("Seleccione");
        System.out.println(ruta);
        try {
            Class.forName("org.sqlite.JDBC");
            Properties config = new Properties();
            config.put("shared_cache", "true");
            Connection con = DriverManager.getConnection("jdbc:sqlite:" + ruta, config);
            Statement st = con.createStatement();
            ResultSet rs = st.executeQuery("select name from sqlite_master where type = 'table' ORDER BY name;");//
            //LLENAR combo                      

            while (rs.next()) {
                String value = rs.getString("name");
                System.out.println("Resultado: " + value);
                model.addElement(value);
            }
            rs.close();
            st.close();
            con.close();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException ex) {
            ex.printStackTrace();
            JOptionPane.showMessageDialog(null, "El archivo no se encuentra en la ruta específicada");
        }

    }

    public void consultarLocal(String archivo) {
        //Consultar archivo localappstate tabla appstate
        try {
            Class.forName("org.sqlite.JDBC");
            Connection con = DriverManager.getConnection("jdbc:sqlite:" + archivo);
            Statement st = con.createStatement();
            ResultSet rs = st.executeQuery("select package_name, auto_update, account, delivery_data_timestamp_ms, first_download_ms, title from appstate order by package_name");
            //LLENAR TABLA
            DefaultTableModel modelo = new DefaultTableModel();
            jTableBaseInterpretada.setModel(modelo);
            jTableBaseInterpretada.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
            jTableBaseInterpretada.doLayout();

            TableRowSorter sorter = new TableRowSorter(modelo);
            jTableBaseInterpretada.setRowSorter(sorter);

            modelo.addColumn("Nombre Aplicación");//string
            modelo.addColumn("Nombre paquete");//string
            modelo.addColumn("Opción actualización automática");//string
            modelo.addColumn("Fecha y hora solicitud descarga");//long
            modelo.addColumn("Fecha y hora de descarga completa");//long
            modelo.addColumn("Cuenta utilizada");//6 integer delivery_data_timestamp_ms
            for (int i = 0; i < jTableBaseInterpretada.getColumnCount(); i++) {
                TableColumn column = jTableBaseInterpretada.getColumnModel().getColumn(i);
                column.setPreferredWidth(300);
            }
            long first, delivery;
            SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            java.sql.Date fecha = null, fecha1 = null;
            int descarga;
            while (rs.next()) {

                Object[] datos = new Object[6];
                datos[0] = rs.getString("title");
                datos[1] = rs.getString("package_name");
                descarga = rs.getInt("auto_update");

                if (descarga == 1) {
                    datos[2] = "Activada";

                }
                if (descarga == 2) {
                    datos[2] = "Desactivada";
                }

                delivery = rs.getLong("delivery_data_timestamp_ms");
                //convertir fecha de entrega paquete
                if (delivery == 0) {
                    datos[3] = delivery;
                } else {
                    fecha1 = new java.sql.Date(delivery);
                    datos[3] = sdf.format(fecha1);
                }
                //convertir fecha de primera descarga
                first = rs.getLong("first_download_ms");
                if (first == 0) {
                    datos[4] = first;

                } else {
                    fecha = new java.sql.Date(first);
                    datos[4] = sdf.format(fecha);
                }
                datos[5] = rs.getString("account");
                //añadir a tabla
                modelo.addRow(datos);
//                this.crearLog("Consulta a la tabla localappstate");
            }
            rs.close();
            st.close();
            con.close();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException ex) {
            ex.printStackTrace();
            JOptionPane.showMessageDialog(null, "Debe elegir archivos con extensión .db");

        }
    }

    public void consultarIcing(String archivo) {
        //Consultar archivo icingcorpora tabla appstate
        try {
            Class.forName("org.sqlite.JDBC");
            Connection con = DriverManager.getConnection("jdbc:sqlite:" + archivo);
            Statement st = con.createStatement();
            ResultSet rs = st.executeQuery("select display_name,package_name, created_timestamp_ms from applications order by package_name");
            //LLENAR TABLA
            DefaultTableModel modelo = new DefaultTableModel();
            jTableBaseInterpretada.setModel(modelo);
            jTableBaseInterpretada.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
            jTableBaseInterpretada.doLayout();

            TableRowSorter sorter = new TableRowSorter(modelo);
            jTableBaseInterpretada.setRowSorter(sorter);

            modelo.addColumn("Nombre aplicación");//string
            modelo.addColumn("Nombre paquete");//string
            modelo.addColumn("Fecha y hora de instalación/actualización");//string

            for (int i = 0; i < jTableBaseInterpretada.getColumnCount(); i++) {
                TableColumn column = jTableBaseInterpretada.getColumnModel().getColumn(i);
                column.setPreferredWidth(300);
            }

            SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            java.sql.Date fecha = null;
            long created;
            while (rs.next()) {
                Object[] datos = new Object[3];
                datos[0] = rs.getString("display_name");
                datos[1] = rs.getString("package_name");
                created = rs.getLong("created_timestamp_ms");
                fecha = new java.sql.Date(created);
                datos[2] = sdf.format(fecha);
                //añadir a tabla
                modelo.addRow(datos);
            }
            rs.close();
            st.close();
            con.close();
        } catch (ClassNotFoundException e) {
            JOptionPane.showMessageDialog(null, "Seleccione el archivo icingcorpora.db");
            e.printStackTrace();
        } catch (SQLException ex) {
            ex.printStackTrace();
            JOptionPane.showMessageDialog(null, "Debe elegir archivos con extensión .db");
        }

    }

    public void consultarDmapp(String archivo) {
        //Consultar archivo dmappmgr tabla ApplicationControl
        try {
            Class.forName("org.sqlite.JDBC");
            Connection con = DriverManager.getConnection("jdbc:sqlite:" + archivo);
            Statement st = con.createStatement();
            ResultSet rs = st.executeQuery("select pkgname, applastservicestarttime, applastservicestoptime, lastlaunchtime from ApplicationControl order by pkgname");
            //LLENAR TABLA
            DefaultTableModel modelo = new DefaultTableModel();
            jTableBaseInterpretada.setModel(modelo);
            jTableBaseInterpretada.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
            jTableBaseInterpretada.doLayout();
            modelo.addColumn("Paquete");//string
            modelo.addColumn("Última hora de inicio del servicio");//string
            modelo.addColumn("Última hora de interrupción del servicio");//string
            modelo.addColumn("Última hora de inicio aplicación");//string

            TableRowSorter sorter = new TableRowSorter(modelo);
            jTableBaseInterpretada.setRowSorter(sorter);

            for (int i = 0; i < jTableBaseInterpretada.getColumnCount(); i++) {
                TableColumn column = jTableBaseInterpretada.getColumnModel().getColumn(i);
                column.setPreferredWidth(300);
            }

            SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            java.sql.Date fecha = null, fecha1 = null, fecha2 = null;
            long inicioServicio, pausa, inicioApp;
            while (rs.next()) {
                Object[] datos = new Object[4];
                datos[0] = rs.getString("pkgname");
                inicioServicio = rs.getLong("applastservicestarttime");
                if (inicioServicio == 0) {
                    datos[1] = inicioServicio;
                } else {
                    fecha = new java.sql.Date(inicioServicio);
                    datos[1] = sdf.format(fecha);
                }

                pausa = rs.getLong("applastservicestoptime");
                if (pausa == 0) {
                    datos[2] = pausa;
                } else {
                    fecha1 = new java.sql.Date(pausa);
                    datos[2] = sdf.format(fecha1);
                }

                inicioApp = rs.getLong("lastlaunchtime");
                if (inicioApp == 0) {
                    datos[3] = inicioApp;

                } else {
                    fecha2 = new java.sql.Date(inicioApp);
                    datos[3] = sdf.format(fecha2);
                }
                //añadir a tabla
                modelo.addRow(datos);
            }
            rs.close();
            st.close();
            con.close();
        } catch (ClassNotFoundException e) {
            JOptionPane.showMessageDialog(null, "Seleccione el archivo dmappmgr.db");
            e.printStackTrace();
        } catch (SQLException ex) {
            ex.printStackTrace();
            JOptionPane.showMessageDialog(null, "Debe elegir archivos con extensión .db");
        }

    }

    public void consultarTablas(String ruta, String tabla) {
        //JScrollPane scrollPane = new JScrollPane();
        try {
            DefaultTableModel modelo = new DefaultTableModel();
            jtableBase.setModel(modelo);

            Class.forName("org.sqlite.JDBC");
            Connection con = DriverManager.getConnection("jdbc:sqlite:" + ruta);
            Statement st = con.createStatement();
            ResultSet rs = st.executeQuery("Select * from " + tabla + " order by 1");
            //info columnas
            ResultSetMetaData rsMd = rs.getMetaData();
            //cant columnas
            int cantColum = rsMd.getColumnCount();
            //scrollPane = new JScrollPane(jtableBase, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
            jtableBase.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
            jtableBase.doLayout();

            TableRowSorter sorter = new TableRowSorter(modelo);
            jtableBase.setRowSorter(sorter);
            ///////////////////////
            //cabecera tabla x nombre columnas
            for (int i = 1; i <= cantColum; i++) {
                modelo.addColumn(rsMd.getColumnLabel(i));
            }//fin columnas

            for (int i = 0; i < jtableBase.getColumnCount(); i++) {
                TableColumn column = jtableBase.getColumnModel().getColumn(i);
                column.setPreferredWidth(100);
            }

            //creamos filas
            while (rs.next()) {
                //crear vector
                Object[] filas = new Object[cantColum];
                for (int i = 0; i < cantColum; i++) {
                    filas[i] = rs.getObject(i + 1);
                }//fin filas
                modelo.addRow(filas);
            }
            rs.close();
            ///////////////////////////////////////////7
            st.close();
            con.close();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException ex) {
            ex.printStackTrace();
            //JOptionPane.showMessageDialog(null, "Seleccione tabla");
        }

    }

    public void consultarHistorial(String archivo) {
        //Consultar archivo browser2 tabla history
        try {
            //SQLite.Database db = new SQLite.Database();
            Class.forName("org.sqlite.JDBC");

            Properties config = new Properties();
            //config.put("journal_mode", "WAL");//wal-enabled_
            config.put("shared_cache", "true");//wal-enabled_

            Connection con = DriverManager.getConnection("jdbc:sqlite:" + archivo, config);
            Statement st = con.createStatement();
            ResultSet rs = st.executeQuery("select title, url, date from history order by title");
            //LLENAR TABLA
            DefaultTableModel modelo = new DefaultTableModel();
            jTableBaseInterpretada.setModel(modelo);
            jTableBaseInterpretada.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
            jTableBaseInterpretada.doLayout();

            TableRowSorter sorter = new TableRowSorter(modelo);
            jTableBaseInterpretada.setRowSorter(sorter);

            modelo.addColumn("Búsqueda");//string
            modelo.addColumn("URL");//string
            modelo.addColumn("Fecha de navegación");//string

            for (int i = 0; i < jTableBaseInterpretada.getColumnCount(); i++) {
                TableColumn column = jTableBaseInterpretada.getColumnModel().getColumn(i);
                column.setPreferredWidth(300);
            }

            SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            java.sql.Date fecha = null;
            long created;
            while (rs.next()) {
                Object[] datos = new Object[3];
                datos[0] = rs.getString("title");
                datos[1] = rs.getString("url");
                created = rs.getLong("date");
                fecha = new java.sql.Date(created);
                datos[2] = sdf.format(fecha);
                //añadir a tabla
                modelo.addRow(datos);
            }
            rs.close();
            st.close();
            con.close();
        } catch (ClassNotFoundException e) {
            JOptionPane.showMessageDialog(null, "Seleccione el archivo browser2.db");
            e.printStackTrace();
        } catch (SQLException ex) {
            ex.printStackTrace();
            JOptionPane.showMessageDialog(null, "Debe elegir archivos con extensión .db");
        }

    }

    public void consultarDescargas(String archivo) {
        //sisodownloads.db tabla sisodownloads
        try {
            Class.forName("org.sqlite.JDBC");
            Connection con = DriverManager.getConnection("jdbc:sqlite:" + archivo);
            Statement st = con.createStatement();
            ResultSet rs = st.executeQuery("select uri, _data, lastmod, useragent, title from sisodownloads");
            //LLENAR TABLA
            DefaultTableModel modelo = new DefaultTableModel();
            jTableBaseInterpretada.setModel(modelo);
            jTableBaseInterpretada.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
            jTableBaseInterpretada.doLayout();
            modelo.addColumn("Archivo descargado");//string
            modelo.addColumn("Link de descarga");//string
            modelo.addColumn("Fecha y hora de descarga");//string
            modelo.addColumn("Ruta archivo");//string
            modelo.addColumn("Datos navegador");//string

            TableRowSorter sorter = new TableRowSorter(modelo);
            jTableBaseInterpretada.setRowSorter(sorter);

            for (int i = 0; i < jTableBaseInterpretada.getColumnCount(); i++) {
                TableColumn column = jTableBaseInterpretada.getColumnModel().getColumn(i);
                column.setPreferredWidth(300);
            }

            SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            java.sql.Date fecha = null;
            long created;
            while (rs.next()) {
                Object[] datos = new Object[5];
                datos[0] = rs.getString("title");
                datos[1] = rs.getString("uri");
                created = rs.getLong("lastmod");
                fecha = new java.sql.Date(created);
                datos[2] = sdf.format(fecha);
                datos[3] = rs.getString("_data");
                datos[4] = rs.getString("useragent");
                //añadir a tabla
                modelo.addRow(datos);
            }
            rs.close();
            st.close();
            con.close();
        } catch (ClassNotFoundException e) {
            JOptionPane.showMessageDialog(null, "Seleccione el archivo sisodownloads.db");
            e.printStackTrace();
        } catch (SQLException ex) {
            ex.printStackTrace();
            JOptionPane.showMessageDialog(null, "Debe elegir archivos con extensión .db");
        }

    }

    public ArrayList<String> obtenerPaquetesDeXml(String ruta) {
        ArrayList<String> datosXml = new ArrayList<>();
        try {
            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
            DocumentBuilder db = dbf.newDocumentBuilder();
            Document doc = db.parse(ruta);
            doc.getDocumentElement().normalize();
            System.out.println("Root element " + doc.getDocumentElement().getNodeName());
            Element rootElement = doc.getDocumentElement();
            NodeList nodeList = rootElement.getElementsByTagName("package");
            if (nodeList != null && nodeList.getLength() > 0) {
                for (int i = 0; i < nodeList.getLength(); i++) {
                    Element element = (Element) nodeList.item(i);
                    if (element.hasAttribute("name")) {
                        datosXml.add(element.getAttribute("name"));
                        //System.out.println("Paquetes de xml--> " + element.getAttribute("name"));
                    }
                }
            }
        } catch (ParserConfigurationException e) {
            e.printStackTrace();
        } catch (SAXException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return datosXml;

    }

    public void paquetesEliminadosLocalXml1(String local, String rutaxml) {
        limpiarTabla(jTableEliminadas);
        limpiarTabla(jTableEliminadasSystem);
        //de icingcorpora la columna 3 y de local la columna 0
        DefaultTableModel modelo = new DefaultTableModel();
        jTableEliminadas.setModel(modelo);
        jTableEliminadas.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        jTableEliminadas.doLayout();
        modelo.addColumn("Nombre aplicación");//string
        modelo.addColumn("Nombre paquete (Google Play)");//string
        //modelo.addColumn("Fecha y hora de descarga");//string
        TableRowSorter sorter = new TableRowSorter(modelo);
        jTableEliminadas.setRowSorter(sorter);
        for (int i = 0; i < jTableEliminadas.getColumnCount(); i++) {
            TableColumn column = jTableEliminadas.getColumnModel().getColumn(i);
            column.setPreferredWidth(250);
        }
        ArrayList<String> archivoXml = obtenerPaquetesDeXml(rutaxml);
        ArrayList<String> localappstate = new ArrayList<>();
        ArrayList<String> eliminadas = new ArrayList<>();
        String val1 = null, val2 = null;
        String nombreApp = null;

        try {
            Class.forName("org.sqlite.JDBC");
            Connection con1 = DriverManager.getConnection("jdbc:sqlite:" + local);
            Statement st1 = con1.createStatement();
            ResultSet rs1 = st1.executeQuery("Select * from appstate order by 1");
            while (rs1.next()) {
                localappstate.add(rs1.getString(1));
            }
            ///////COMPARAR
            for (int i = 0; i < localappstate.size(); i++) {
                boolean encontrada = false;
                for (int j = 0; j < archivoXml.size(); j++) {
                    val1 = localappstate.get(i);
                    val2 = archivoXml.get(j);
                    if (val1.equals(val2)) {
                        encontrada = true;
                    }
                }
                if (!encontrada) {
                    Object[] datos = new Object[2];
                    datos[0] = buscarNombreLocal(local, val1).toString();
                    datos[1] = val1;
                    modelo.addRow(datos);
                    //buscarNombreLocal(local, val1);
                    //txtResultadosLocalXml.append(val1 + "\n");
                    // txtResultadosLocalXml.append(val1+"--> "+buscarNombre(val1) + "\n");
                }
            }
            ///////////////////7
            rs1.close();
            st1.close();
            con1.close();
        } catch (SQLException ex) {
            ex.printStackTrace();
            //JOptionPane.showMessageDialog(null, "Seleccione tabla");
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(Inicio.class.getName()).log(Level.SEVERE, null, ex);
        }
        //paquetesEliminadosDmappXml(rutaDmapp, rutaArchivoXml);
    }

    public void paquetesEliminadosIcingXml(String icing, String rutaxml) {
        //de icingcorpora la columna 3 y de local la columna 0
        ArrayList<String> archivoXml = obtenerPaquetesDeXml(rutaxml);
        ArrayList<String> icingcorpora = new ArrayList<>();
        ArrayList<String> eliminadas = new ArrayList<>();
        String val1 = null, val2 = null;

        try {
            Class.forName("org.sqlite.JDBC");
            Connection con1 = DriverManager.getConnection("jdbc:sqlite:" + icing);
            Statement st1 = con1.createStatement();
            ResultSet rs1 = st1.executeQuery("Select * from applications order by 4");
            while (rs1.next()) {
                icingcorpora.add(rs1.getString(4));
            }
            ///////COMPARAR
            for (int i = 0; i < icingcorpora.size(); i++) {
                boolean encontrada = false;
                for (int j = 0; j < archivoXml.size(); j++) {
                    val1 = icingcorpora.get(i);
                    val2 = archivoXml.get(j);
                    if (val1.equals(val2)) {
                        encontrada = true;
                    }
                }
                if (!encontrada) {
                    //eliminadas.add(val1);
//                    txtResultadosIcingXml.append(val1 + "\n");
                }
            }
            ///////////////////7
            rs1.close();
            st1.close();
            con1.close();
        } catch (SQLException ex) {
            ex.printStackTrace();
            //JOptionPane.showMessageDialog(null, "Seleccione tabla");
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(Inicio.class.getName()).log(Level.SEVERE, null, ex);
        }

    }

    public void paquetesEliminadosDmappXml(String dmapp, String rutaxml) {
        limpiarTabla(jTableEliminadasSystem);
        DefaultTableModel modelo = new DefaultTableModel();
        jTableEliminadasSystem.setModel(modelo);
        jTableEliminadasSystem.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        jTableEliminadasSystem.doLayout();
        //modelo.addColumn("Nombre aplicación");//string
        modelo.addColumn("Nombre paquete (Otras fuentes)");//string
        //modelo.addColumn("Fecha y hora de descarga");//string
        TableRowSorter sorter = new TableRowSorter(modelo);
        jTableEliminadasSystem.setRowSorter(sorter);
        for (int i = 0; i < jTableEliminadasSystem.getColumnCount(); i++) {
            TableColumn column = jTableEliminadasSystem.getColumnModel().getColumn(i);
            column.setPreferredWidth(300);
        }
        //de icingcorpora la columna 3 y de local la columna 0
        ArrayList<String> archivoXml = obtenerPaquetesDeXml(rutaxml);
        ArrayList<String> dampp = new ArrayList<>();
        ArrayList<String> eliminadas = new ArrayList<>();
        String val1 = null, val2 = null;

        try {
            Class.forName("org.sqlite.JDBC");
            Connection con1 = DriverManager.getConnection("jdbc:sqlite:" + dmapp);
            Statement st1 = con1.createStatement();
            ResultSet rs1 = st1.executeQuery("Select * from ApplicationControl order by 2");
            while (rs1.next()) {
                dampp.add(rs1.getString(2));
            }
            ///////COMPARAR
            for (int i = 0; i < dampp.size(); i++) {
                boolean encontrada = false;
                for (int j = 0; j < archivoXml.size(); j++) {
                    val1 = dampp.get(i);
                    val2 = archivoXml.get(j);
                    if (val1.equals(val2)) {
                        encontrada = true;
                    }
                }
                if (!encontrada) {
                    eliminadas.add(val1);
                    appsEliminadasSistema(eliminadas);
                }
            }
            ///////////////////7
            rs1.close();
            st1.close();
            con1.close();
        } catch (SQLException ex) {
            ex.printStackTrace();
            //JOptionPane.showMessageDialog(null, "Seleccione tabla");
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(Inicio.class.getName()).log(Level.SEVERE, null, ex);
        }

    }

    public void appsEliminadasSistema(ArrayList<String> dato) {
        DefaultTableModel modelo = new DefaultTableModel();
        jTableEliminadasSystem.setModel(modelo);
        jTableEliminadasSystem.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        jTableEliminadasSystem.doLayout();
        //modelo.addColumn("Nombre aplicación");//string
        modelo.addColumn("Nombre paquete (Otras fuentes)");//string
        //modelo.addColumn("Fecha y hora de descarga");//string
        TableRowSorter sorter = new TableRowSorter(modelo);
        jTableEliminadasSystem.setRowSorter(sorter);
        for (int i = 0; i < jTableEliminadasSystem.getColumnCount(); i++) {
            TableColumn column = jTableEliminadasSystem.getColumnModel().getColumn(i);
            column.setPreferredWidth(300);
        }
        //DefaultListModel modelo = new DefaultListModel();
        String val1 = null, val2 = null;
        String dat = "";
        String nombre = "";
        if (jTableEliminadas.getRowCount() != 0 && dato.size() != 0) {
            for (int i = 0; i < dato.size(); i++) {
                boolean encontrada = false;
                for (int j = 0; j < jTableEliminadas.getRowCount(); j++) {
                    val1 = String.valueOf(jTableEliminadas.getValueAt(j, 1));
                    val2 = dato.get(i);
                    //nombre = String.valueOf(jTableIcing.getValueAt(i, 0));
                    if (val2.equals(val1)) {
                        encontrada = true;
                        System.out.println("Encontrada: " + val2);
                    }
                }
                if (!encontrada) {
                    //System.out.println("Eliminada--> " + val1 + "App: " + nombre);
                    Object[] datos = new Object[3];
                    datos[0] = val2;
                    datos[1] = dato;
                    modelo.addRow(datos);
                }
            }
            //jList1.setModel(modelo);
        } else {
            //JOptionPane.showMessageDialog(null, "Seleccione los archivos dmappmgr.db y packages.xml");

        }

    }

    public ArrayList<String> buscarNombreLocal(String local, String paquete) {
        //de icingcorpora la columna 3 y de local la columna 0
        ArrayList<String> localappstate = new ArrayList<>();
        try {
            Connection con1 = DriverManager.getConnection("jdbc:sqlite:" + local);
            Statement st1 = con1.createStatement();
            ResultSet rs1 = st1.executeQuery("Select * from appstate where package_name ='" + paquete + "' order by 1");
            while (rs1.next()) {
                localappstate.add(rs1.getString("title"));
            }
            for (int i = 0; i < localappstate.size(); i++) {
                //txtResultadosLocalXml.append(paquete + "-->" + localappstate.get(i) + "\n");
            }
            rs1.close();
            st1.close();
            con1.close();
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
        return localappstate;

    }

    public void appsCanceladas(String archivo) {
        //String archivo = txtRutaLocal.getText();
        if (!archivo.isEmpty()) {
            try {
                Class.forName("org.sqlite.JDBC");
                Connection con = DriverManager.getConnection("jdbc:sqlite:" + archivo);
                Statement st = con.createStatement();
                ResultSet rs = st.executeQuery("select package_name, auto_update, account, delivery_data_timestamp_ms, first_download_ms, title from appstate where first_download_ms=0 order by package_name");
                long first, delivery;
                SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                Date fecha = null, fecha1 = null;
                //LLENAR TABLA
                DefaultTableModel modelo = new DefaultTableModel();
                jTableNoSastifactorias.setModel(modelo);
                jTableNoSastifactorias.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
                jTableNoSastifactorias.doLayout();
                modelo.addColumn("Nombre aplicación");//string
                modelo.addColumn("Nombre paquete");//string
                modelo.addColumn("Opción actualización automática");//string
                modelo.addColumn("Fecha y hora solicitud descarga");//long
                modelo.addColumn("Fecha y hora de descarga completa");//long
                modelo.addColumn("Cuenta utilizada");
                TableRowSorter sorter = new TableRowSorter(modelo);
                jTableNoSastifactorias.setRowSorter(sorter);

                for (int i = 0; i < jTableNoSastifactorias.getColumnCount(); i++) {
                    TableColumn column = jTableNoSastifactorias.getColumnModel().getColumn(i);
                    column.setPreferredWidth(250);
                }
                ///
                while (rs.next()) {
                    Object[] datos = new Object[6];
                    datos[0] = rs.getString("title");
                    datos[1] = rs.getString("package_name");
                    datos[2] = rs.getInt("auto_update");
                    delivery = rs.getLong("delivery_data_timestamp_ms");
                    first = rs.getLong("first_download_ms");
                    //datos[4] = first;
                    datos[5] = rs.getString("account");
                    if (delivery == 0) {
                        datos[3] = delivery;
                    } else {
                        fecha1 = new Date(delivery);
                        datos[3] = sdf.format(fecha1);
                    }
                    if (first == 0) {
                        datos[4] = first;
                    } else {
                        fecha = new Date(first);
                        datos[4] = sdf.format(fecha);
                    }
                    modelo.addRow(datos);

                }
                rs.close();
                st.close();
                con.close();
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
                log.error(e);
            } catch (SQLException ex) {
                ex.printStackTrace();
                log.fatal(ex);
                JOptionPane.showMessageDialog(null, "Debe elegir archivos con extensión .db");
            }

        } else {
            JOptionPane.showMessageDialog(null, "Debe subir el archivo localappstate.db");
            log.error("Archivo incorrecto");
        }

    }

    public void obtPersonal(String caso) {
        DefaultTableModel modelo = new DefaultTableModel();
        jTablePersonal.setModel(modelo);
        jTablePersonal.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        modelo.addColumn("Identificación");
        modelo.addColumn("Rol");
        modelo.addColumn("Nombres");
        modelo.addColumn("Apellidos");
        TableRowSorter sorte = new TableRowSorter(modelo);
        jTablePersonal.setRowSorter(sorte);
        for (int i = 0; i < jTablePersonal.getColumnCount(); i++) {
            TableColumn column = jTablePersonal.getColumnModel().getColumn(i);
            column.setPreferredWidth(200);
        }
        ConexionBD con = new ConexionBD();
//        obtPersonal(caso);
        try {
            Statement st = con.getConection().createStatement();
            ResultSet rs = st.executeQuery("SELECT * FROM personal where CODIGOCASO= '" + caso + "';");
            //para tabla caso
            Team dis = null;
            while (rs.next()) {
                Object[] datos = new Object[4];
                datos[0] = rs.getString(1);
                datos[1] = rs.getString(3);
                datos[2] = rs.getString(4);
                datos[3] = rs.getString(5);
                modelo.addRow(datos);

            }
        } catch (SQLException e) {
            e.printStackTrace();
        }

    }

    public void obtDevices(String caso) {
        DefaultTableModel modelo = new DefaultTableModel();
        jTableDispositivo.setModel(modelo);
        jTableDispositivo.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        modelo.addColumn("Código etiqueta");
        modelo.addColumn("Evidencia");
        modelo.addColumn("Fecha recepción");
        modelo.addColumn("Tipo");
        modelo.addColumn("Estado");
        modelo.addColumn("Bloqueado");
        modelo.addColumn("Espacio almacenamiento");
        TableRowSorter sorte = new TableRowSorter(modelo);
        jTableDispositivo.setRowSorter(sorte);
        for (int i = 0; i < jTableDispositivo.getColumnCount(); i++) {
            TableColumn column = jTableDispositivo.getColumnModel().getColumn(i);
            column.setPreferredWidth(150);
        }
        ConexionBD con = new ConexionBD();
//        obtPersonal(caso);
        try {
            Statement st = con.getConection().createStatement();
            ResultSet rs = st.executeQuery("SELECT * FROM `dispositivo` JOIN `evidencia` ON `dispositivo`.`CODIGOEVIDENCIA` = `evidencia`.`CODIGOEVIDENCIA` WHERE `evidencia`.`CODIGOCASO`='" + caso + "'");
            //para tabla caso

            while (rs.next()) {
                long fecha1 = rs.getLong(11);
                SimpleDateFormat sdf1 = new java.text.SimpleDateFormat("dd/MM/yyyy HH:mm");
                Date sol1 = new Date(fecha1);
                Object[] datos = new Object[16];
                datos[0] = rs.getString(2);
                datos[1] = rs.getString(1);
                datos[2] = sdf1.format(sol1);
                datos[3] = rs.getString(12);
                datos[4] = rs.getString(3);
                datos[5] = rs.getString(4);
                datos[6] = rs.getString(5);

                modelo.addRow(datos);

            }
        } catch (SQLException e) {
            e.printStackTrace();
        }

    }

    public void mostratXml(String ruta) throws IOException {
        File archivo = new File(ruta);
        FileReader fr = null;
        try {
            fr = new FileReader(archivo);
            BufferedReader br = new BufferedReader(fr);
            String linea;
            while ((linea = br.readLine()) != null) {
                System.out.println(linea);
                txtPackages.append(linea + "\n");
            }
        } catch (Exception ex) {
            ex.printStackTrace();
        } finally {
            try {
                if (null != fr) {
                    fr.close();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(Inicio.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(Inicio.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(Inicio.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(Inicio.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Inicio().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton btnDispositivos;
    private javax.swing.JButton btnFiles;
    private javax.swing.JButton btnNewCase;
    private javax.swing.JButton btnReporte;
    private javax.swing.JComboBox jComboBoxTablas;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel10;
    private javax.swing.JLabel jLabel11;
    private javax.swing.JLabel jLabel12;
    private javax.swing.JLabel jLabel13;
    private javax.swing.JLabel jLabel14;
    private javax.swing.JLabel jLabel15;
    private javax.swing.JLabel jLabel16;
    private javax.swing.JLabel jLabel17;
    private javax.swing.JLabel jLabel18;
    private javax.swing.JLabel jLabel19;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel20;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JLabel jLabel9;
    private javax.swing.JMenu jMenu1;
    private javax.swing.JMenu jMenu2;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel15;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanelDatosArchivosSeleccionados;
    private javax.swing.JPanel jPanelDispositivos;
    private javax.swing.JPanel jPanelEvidencia;
    private javax.swing.JPanel jPanelInfo;
    private javax.swing.JPanel jPanelMenuJtree;
    private javax.swing.JPanel jPanelPackages;
    private javax.swing.JPanel jPanelPrincipal;
    private javax.swing.JPanel jPanelResultados;
    private javax.swing.JPanel jPanelResultados1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane11;
    private javax.swing.JScrollPane jScrollPane12;
    private javax.swing.JScrollPane jScrollPane13;
    private javax.swing.JScrollPane jScrollPane15;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JScrollPane jScrollPane3;
    private javax.swing.JScrollPane jScrollPane4;
    private javax.swing.JScrollPane jScrollPane5;
    private javax.swing.JScrollPane jScrollPane6;
    private javax.swing.JScrollPane jScrollPane7;
    private javax.swing.JScrollPane jScrollPane8;
    private javax.swing.JScrollPane jScrollPane9;
    private javax.swing.JTable jTableBaseInterpretada;
    private javax.swing.JTable jTableDispositivo;
    private javax.swing.JTable jTableEliminadas;
    private javax.swing.JTable jTableEliminadasSystem;
    private javax.swing.JTable jTableNoSastifactorias;
    private javax.swing.JTable jTablePersonal;
    private javax.swing.JToolBar jToolBar1;
    private javax.swing.JTree jTree2;
    private javax.swing.JTable jtableBase;
    private javax.swing.JTextArea txtAlcance;
    public static javax.swing.JTextField txtCaso;
    private javax.swing.JTextField txtCaso2;
    private javax.swing.JTextArea txtDes;
    public static javax.swing.JTextField txtDispositivo;
    private javax.swing.JTextField txtDispositivo1;
    private javax.swing.JPanel txtEliminadas;
    public static javax.swing.JTextField txtEvidencia;
    private javax.swing.JTextField txtEvidencia1;
    private javax.swing.JTextField txtFechaIncautacion;
    private javax.swing.JTextField txtFechaSolicitud;
    private javax.swing.JTextField txtLugar;
    private javax.swing.JTextField txtMarca;
    private javax.swing.JTextField txtModelo;
    private javax.swing.JTextArea txtObj;
    private javax.swing.JTextArea txtObservaciones;
    private javax.swing.JTextArea txtPackages;
    private javax.swing.JTextField txtQuienSolicita;
    private javax.swing.JTextField txtSerial;
    private javax.swing.JTextField txtVersion;
    // End of variables declaration//GEN-END:variables
}
